﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.SqlClient;

namespace dacli.modelos.dao
{
    public class ClientesDAO : EntidadDao
    {
        public Clientes clientes { get; set; }

        public Clientes asignarId(long id)
        {
            this.consultar("id=" + id);
            return this.clientes;
        }
        public ClientesDAO()
            : base("clientes")
        {

        }
        public override long incluir()
        {
            string sql = "INSERT INTO " + this.tabla + " (cedula, nombres, direccion, telefono) values" +
            "('" + clientes.cedula + "','" + clientes.nombre + "','" + clientes.direccion + "','"+ clientes.telefono +"')";
            long clienteResult = conexion.ejecutar(sql);
            if (clienteResult == -1) new NotSupportedException();
            clientes.id = clienteResult;
            return clienteResult;            
        }

        public override long modificar()
        {
            string sql = "UPDATE " + this.tabla + " SET "
                        + "cedula ='" + clientes.cedula+ "', "
                        + "nombres ='" + clientes.nombre + "', "
                        + "direccion ='" + clientes.direccion+ "', "
                        + "telefono ='" + clientes.telefono + "' "
                        + "WHERE id =" + clientes.id;
            return conexion.ejecutar(sql);
        }

        public override long eliminar()
        {
            string sql = "DELETE FROM " + this.tabla + " WHERE "
            + "id =" + clientes.id;
            return conexion.ejecutar(sql);
        }

        public override bool consultar(string filtro)
        {
            string sql = "SELECT * FROM " + this.tabla + " WHERE "
+ filtro;
            SqlDataReader reader = conexion.consultar(sql);
            if (reader.Read())
            {
                this.clientes = new Clientes();
                this.clientes.id = reader.GetInt32(0);
                this.clientes.cedula = reader.GetValue(1).ToString();
                this.clientes.nombre = reader.GetValue(2).ToString();
                this.clientes.direccion = reader.GetValue(3).ToString();
                this.clientes.telefono = reader.GetValue(4).ToString();
                reader.Close();
                return true;
            }
            return false;

        }
    }
}
